The present invention relates generally to graphical user interfaces for computer systems. More particularly, the present invention relates to control elements which, among other things, combine features of a menu element and a list element within a graphical user interface.
The evolution of the computer industry is unparalleled in its rate of growth and complexity. Personal computers, for example, which began as little more than feeble calculators with limited memory, tape-driven input and monochrome displays are now able to tackle almost any data processing task. While this meteoric increase in power was almost sufficient to satisfy the demand of application designers and end users alike, the corresponding increase in complexity created an ease-of-use problem which the industry was somewhat slower in solving. Thus, designers were faced with a new challenge: to harness this computing power in a form usable by even those with relatively little computer training to smooth the transition of other industries into a computer-based information paradigm.
As a result, in the early to mid-1980""s many new I/O philosophies, such as xe2x80x9cuser friendlyxe2x80x9d, xe2x80x9cWYSIWYGxe2x80x9d and xe2x80x9cmenu drivenxe2x80x9d came to the forefront of the industry. These concepts are particularly applicable to microcomputers, also known as personal computers, which are intended to appeal to a broad audience of computer users, including those who previously feared and mistrusted computers. An important aspect of computers which employ these concepts was, and continues to be, the interface which allows the user to input commands and data and receive results, which is commonly referred to as a graphical user interface (GUI).
The success of this type of interface is evident from the number of companies which have emulated the desktop environment. Even successful concepts, however, must continually be improved in order to keep pace with the rapid growth in this industry. The advent of multimedia, especially CD-ROM devices, has provided vast quantities of secondary storage which have been used to provide video capabilities, e.g., live animation and video clips, as regular components of application displays. With these and other new resources at their disposal, application designers and users alike, demand additional functionality and greater ease of use from the desktop environment.
Today it is hard to imagine an operating system or application which does not provide a GUI. A system""s or application""s GUI along with the other man machine interface (MMI) elements is often referred to as its xe2x80x9clook and feel.xe2x80x9d Accordingly, developers of today""s applications typically use the control elements of the operating system or platform GUI, adding their own GUI elements and ideas, to differentiate their application from other, competing applications being developed. Elements of a GUI include such things as windows, menus, lists, buttons, scroll bars, icons, pointers, etc. Two well known GUI control elements are the xe2x80x9cpop-up menuxe2x80x9d and xe2x80x9clist boxxe2x80x9d, both of which have advantages and disadvantages which are discussed below.
An exemplary GUI control element commonly referred to as a list box is shown in FIG. 1. The list box control element generally requires the specification of the number of visible rows in a viewing area 100. The number of visible rows specified does not limit the number of possible entries which can be displayed within the list box, rather it affects the height of the displayed list box. If more entries are entered (i.e., more data is to be presented to the user) than can be displayed in the viewing area 100 of the list box, then a scroll bar 101 is automatically created. The scroll bar 101 permits the user to traverse all the entries in the list box by moving the slider element 102. The list box control element has the advantage of permitting presentation of multiple entries simultaneously and the immediate interaction with those displayed entries. However, the list box control element has the drawback that the display of multiple entries using the conventional list box can require a lot of space on the GUI.
An example of another GUI control element, commonly referred to as a pop-up menu, is shown in FIG. 2. The pop-up menu, unlike the list box, does not require a specification as to the number of visible rows. In the pop-up menu control element, the amount of data to be presented determines the number of visible rows. However, as shown on the left-hand side of FIG. 2, the pop-up menu, unlike the list box, typically operates in a default state to show a single selection 203 with an indicator 202 that informs the GUI user that other entries can be displayed when the user interacts with the menu. For example, the user can xe2x80x9cpop-upxe2x80x9d the list of entries 204 by clicking the triangle icon 202 on the menu 200 with the cursor via a mouse. Pop-up menus require minimal amount of display space in their default state. However, they require additional operations by the user in order to display and interact with the data to be presented and they are not convenient for large amounts of data.
Accordingly, as part of the continued evolution of GUIs generally, there exists a need for a new GUI control elements which optimally use the available space for displaying items to the user.
It is an objective of the present invention to provide a method and GUI control element which optimally present a list of items for both large and small amounts of available display space.
The above-identified and other objectives are achieved by combining the features of the menu and list control elements into a GUI control element which is capable of displaying data in multiple states, dependent on the amount of data to be displayed and/or the display space available. More specifically, according to exemplary embodiments of the present invention the control element is configured to display data in a first display state or a second display state, based on the amount of display space provided for the control element, wherein the control element, in the first display state, presents the data as a list, and the control element in the second display state, presents a menu which can be accessed to present the data.